﻿using System;
namespace NewsMine.FeedRepository
{
    interface IWebSiteManager
    {
        NewsMine.DomainObjects.WebSiteMenu AddWebMenuItem(NewsMine.DomainObjects.WebSiteMenu webSiteMenu);
        NewsMine.DomainObjects.WebSiteInfo AddWebSiteInfo(NewsMine.DomainObjects.WebSiteInfo webSiteInfo);
        System.Collections.Generic.List<NewsMine.DomainObjects.WebSiteInfo> GetAllAdultWebSites();
        System.Collections.Generic.List<NewsMine.DomainObjects.WebSiteInfo> GetAllInactiveWebsites();
        System.Collections.Generic.List<NewsMine.DomainObjects.WebSiteMenu> GetMenuItemById(long webSiteMenuID);
        System.Collections.Generic.List<NewsMine.DomainObjects.WebSiteMenu> GetMenuListByWebSite(NewsMine.DomainObjects.WebSiteInfo websiteInfo);
        System.Collections.Generic.List<NewsMine.DomainObjects.WebSiteInfo> GetRelatedWebSites(NewsMine.DomainObjects.WebSiteInfo websiteInfo);
        NewsMine.DomainObjects.WebSiteInfo GetWebSiteByID(long id);
        System.Collections.Generic.List<NewsMine.DomainObjects.WebSiteInfo> GetWebSitesByAuthor(NewsMine.DomainObjects.AuthorInfo author);
        System.Collections.Generic.List<NewsMine.DomainObjects.WebSiteInfo> GetWebSitesByAuthorID(long authorID);
        System.Collections.Generic.List<NewsMine.DomainObjects.WebSiteInfo> GetWebSitesByCategory(NewsMine.DomainObjects.Category category);
        System.Collections.Generic.List<NewsMine.DomainObjects.WebSiteInfo> GetWebSitesByCategoryID(long categoryId);
        System.Collections.Generic.List<NewsMine.DomainObjects.WebSiteInfo> GetWebSitesByGeoLocation(NewsMine.DomainObjects.GeoLocation location);
        System.Collections.Generic.List<NewsMine.DomainObjects.WebSiteInfo> GetWebSitesByGeoLocationID(long locationID);
        NewsMine.DomainObjects.WebSiteInfo GetWebSitesByLanguage(NewsMine.DomainObjects.Language language);
        System.Collections.Generic.List<NewsMine.DomainObjects.WebSiteInfo> GetWebSitesByLanguageID(long languageId);
        System.Collections.Generic.List<NewsMine.DomainObjects.WebSiteInfo> GetWebSitesForCategoryHierarchy(NewsMine.DomainObjects.Category category);
        System.Collections.Generic.List<NewsMine.DomainObjects.WebSiteInfo> GetWebSitesForUser(NewsMine.DomainObjects.UserInfo userInfo);
        bool SaveWebSiteInfo(NewsMine.DomainObjects.WebSiteInfo webSiteInfo);
        bool SaveWebSiteMenu(NewsMine.DomainObjects.WebSiteMenu websiteMenu);
        System.Collections.Generic.List<NewsMine.DomainObjects.WebSiteInfo> SearchWebSitesByName(string name);
    }
}
